想看懂复杂代码离不开 debugger,它是提升 Node.js 水平必备的能力。因为后面的案例代码都是有一定的复杂度的,建议同学们先学会使用 debugger 再去学后面的案例,结合 debugger 来看。
这一节,我们来学习下 vscode debugger 的使用。
首先,同学们把代码下载下来后,可以看到又一个 .vscode 的目录,里面有个 launch.json 的配置,这里面就是调试的配置。

这个文件就是调试的配置,点开 debugger 的窗口,就可以看到启动调试的按钮。

可以在想断住的那一行左边点一下,就会打上断点,然后点击调试,就会以 debug 模式运行,到了断点就会停住,然后可以看到堆栈信息、断点等。

这是 vscode debugger 的使用方式。
# vscode debugger 的配置
会了怎么使用之后,我们来深入讲下怎么配置,希望能够让同学们的 nodejs 调试能力有所提升。
点击这个齿轮,会打开 .vscode/launch.json 的内容来编辑,在这里写各种配置。

点击右下角的按钮就会有一个菜单来选择配置的模版:

运行环境有很多,比如 chrome、node.js 等,这里我们只需要 node.js 的环境。
然后启动方式分为 launch 和 attach 两种。为什么是这两种呢?
那是因为调试是分为客户端和服务端的,

我们如果是启动 node.js 的调试模式,需要加上 --inspect 或者 --inspect-brk(在首行断住)参数,之后会启动一个 websocket server,等待客户端链接。

两者之间是通过 v8 debug protocol 来通信的。
比如: 设置断点:
{
"seq":117,
"type":"request",
"command":"setbreakpoint",
"arguments":{
"type":"function",
"target":"f"
}
}
去掉断点:
{
"seq":117,
"type":"request",
"command":"clearbreakpoint",
"arguments": {
"type":"function",
"breakpoint":1
}
}
手动连接的话可以打开 chrome://inspect 页面,可以用 chrome devtools 的 debugger client 连上来调试。


但是,用 vscode 不用这么麻烦,直接在 .vscode/lau
